import {defineConfig} from "vite";
import vue from "@vitejs/plugin-vue";
// @ts-expect-error process is a nodejs global
const host = process.env.TAURI_DEV_HOST;
const port = 1420;
const hmr_port = port + 1;

// https://vitejs.dev/config/
export default defineConfig(async () => ({
    plugins: [vue()],
    resolve: {
        alias: {
            "@": "/src",
        },
    },

    // Vite options tailored for Tauri development and only applied in `tauri dev` or `tauri build`
    //
    // 1. prevent vite from obscuring rust errors
    clearScreen: false,
    // 2. tauri expects a fixed port, fail if that port is not available
    server: {
        port: port,
        strictPort: true,
        maxHttpHeaderSize: 5000000,
        host: host || false,
        hmr: host
            ? {
                protocol: "ws",
                host,
                port: hmr_port,
            }
            : undefined,
        watch: {
            // 3. tell vite to ignore watching `src-tauri`
            ignored: ["**/src-tauri/**"],
        },
    },
}));
